/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package carreras.ganador.test;

import arduino.entidades.Carril;
import arduino.entidades.Tiempo;
import arduino.entidades.Tiempos;
import carreras.Configuracion;
import carreras.entidades.Auto;
import carreras.entidades.Carrera;
import carreras.entidades.CarrilCarrera;
import carreras.entidades.CatCorredorAuto;
import carreras.entidades.Competencia;
import carreras.entidades.Corredor;
import carreras.entidades.CorredorAuto;
import carreras.entidades.ManagerTorneo;
import carreras.entidades.TipoTiempo;
import carreras.entidades.TipoTiempos;
import carreras.entidades.TodasCarrerasFinalizadasException;
import carreras.logger.CarrerasLogger;
import java.sql.SQLException;

/**
 *
 * @author Fanky10 <fanky10@gmail.com>
 */
public class Main {
    private Competencia competencia_actual;
    public Main() throws TodasCarrerasFinalizadasException, SQLException{
        init();
    }
    private void init() throws TodasCarrerasFinalizadasException, SQLException{   
        //genero una competencia
        competencia_actual = ManagerTorneo.getInstance().getCompetencia_actual();
        //le agrego varios corredores :D
        CorredorAuto ca = new CorredorAuto(new Auto("faa-111"), new Corredor("facundo", "scoccia", 123));
        competencia_actual.add(ca);
        ca = new CorredorAuto(new Auto("lac-111"), new Corredor("lisandro", "rezoagli", 1234));
        competencia_actual.add(ca);
        //ya trngo los corredores ahora a actualizar los tiempos!
        Carrera carrera_actual = competencia_actual.getSiguienteCarrera();
        carrera_actual.actualizaTiempos(gen_ard_carril(1, 8));
        carrera_actual.actualizaTiempos(gen_ard_carril(2, 9));
        
    }
    private arduino.entidades.Carril gen_ard_carril(int nro_carril,double tiempo){
        arduino.entidades.Tiempos tV = new Tiempos();
        tV.add(new arduino.entidades.Tiempo(Tiempo.TIEMPO_FIN, tiempo));
        arduino.entidades.Carril ca = new Carril(nro_carril, tV);
        return ca;
    }
    public void test(){
        final CatCorredorAuto caV = competencia_actual.getCorredoresAutosActivos();
        if(caV.isEmpty()){
            CarrerasLogger.debug(Main.class, "sin corredores");
        }else{
            print_row(new Object[]{"Estado","Numero","Categoria"});
            for(CorredorAuto ca: caV){
                print_row(new Object[]{ca.getEstadoActual(),ca.getNumero_asignado(),ca.getCategoria().getDescripcion()});
            }
        }
    }
    private static void print_row(Object[] obj){
        StringBuilder sb = new StringBuilder();
        for(Object o : obj){
            sb.append(o+"\t");
        }
        CarrerasLogger.debug(Main.class, sb.toString());
    }
    public static void main(String args[]) throws TodasCarrerasFinalizadasException, SQLException{
        carreras.Configuracion.init_conf(args);
        Main m = new Main();
        m.test();
    }
}
